Robotic manipulators

ABSTRACT

A robot comprising a chopstick, configured for at least four degrees of freedom of movement, a stiff body of shape and proportions approximate to a pool cue; an electromagnetic actuator, comprising a motor, for each degree of freedom of movement coupled with the stiff body, wherein the functional mapping from each actuator&#39;s motor current to torque output along an axis of motion is stored, and used in concert with a calibrated model of the robot for effective impedance control; and a 6-axis force/torque sensor mounted inline between the actuators and each chopstick.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority under 35 U.S.C. 119(e) to U.S.Provisional Patent Application No. 62/882,395, filed Aug. 2, 2019, U.S.Provisional Patent Application No. 62/882,396, filed Aug. 2, 2019 andU.S. Provisional Patent Application No. 62/882,397, filed Aug. 2, 2019the disclosures of which are hereby incorporated herein by reference intheir entirety as if set forth in full.

This application is also related to U.S. patent application Ser. No.unassigned, filed on Jul. 30, 2020, entitled SYSTEMS AND METHODS FORROBOTIC CONTROL UNDER CONTACT, and is also related to U.S. patentapplication Ser. No. unassigned, filed on Jul. 30, 2020, entitledROBOTIC SYSTEM FOR PICKING AND PLACING OBJECTS FROM AND INTO ACONSTRAINED SPACE, all of which are incorporated herein by reference intheir entirety as if set forth in full.

BACKGROUND 1. Technical Field

The embodiments described herein are related to the physical design of acontrolled robotic system. A robotic system is a mechanical system ofinterconnected linkages and motors. Such systems can physically interactwith various objects in their environments by moving in accordance withcommands issued by robotic control systems.

2. Related Art

It is currently very hard to build automated machines for manipulatingobjects of various shapes, sizes, inertias, and materials. Withinfactories robots perform many kinds of manipulation on a daily basis.They lift massive objects, move with blurring speed, and repeat complexperformances with unerring precision. Yet outside of these carefullycontrolled robot realms, even the most sophisticated robot would beunable to perform many tasks that involve contact with other objects.Everyday manipulation tasks would stump conventionally controlledrobots. As such, outside of controlled environments, robots have onlyperformed sophisticated manipulation tasks when operated by a human.

Within simulation, robots have performed sophisticated manipulationtasks such as grasping multifaceted objects, tying knots, carryingobjects around complex obstacles, and extracting objects from piles ofentangled objects. The control algorithms for these demonstrations oftenemploy search algorithms to find satisfactory solutions, such as a pathto a goal state, or a configuration of a gripper that maximizes ameasure of grasp quality against an object.

For example, many virtual robots use algorithms for motion planning thatrapidly search for paths through a state space that describes thekinematics and dynamics of the world. Almost all of these simulationsignore the robot's sensory systems and assume that the state of theworld is known with certainty. As examples, they might be provided withgreater accuracy of the objects' states, e.g., positions and velocities,than is obtainable using state-of-the-art sensors, they might beprovided with states for objects that, due to occlusions, are notvisible to sensors, or both.

In a carefully controlled environment, these assumptions can be met. Forexample, within a traditional factory setting, engineers can ensure thata robot knows the state of relevant objects in the world to accuracysufficient to perform necessary tasks. The robot typically needs toperform a few tasks using a few known objects, and people are usuallybanned from the area while the robot is working. Mechanical feeders canenforce constraints on the pose of the objects to be manipulated. And inthe event that a robot needs to sense the world, engineers can make theenvironment favorable to sensing by controlling factors such as thelighting and the placement of objects relative to the sensor. Moreover,since the objects and tasks are known in advance, perception can bespecialized to the environment and task. Whether by automated planningor direct programming, robots perform exceptionally well in factories orother controlled environments. Within research labs, successfuldemonstrations of robots autonomously performing complicatedmanipulation tasks have relied on some combination of known objects,easily identified and tracked objects (e.g., a bright red ball),uncluttered environments, fiducial markers, or narrowly defined, taskspecific controllers.

Outside of controlled settings, however, robots have only performedsophisticated manipulation tasks when operated by a human. Throughteleoperation, even highly complex humanoid robots have performed avariety of challenging everyday manipulation tasks, such as graspingeveryday objects, using a power drill, throwing away trash, andretrieving a drink from a refrigerator.

But accurate control of robots that autonomously, physically interactwith various objects in their environments has proved elusive.

SUMMARY

Embodiments for a robotic arm design with a geometry and that employssimple kinematics of movement are described herein.

According to one aspect, a robot comprises a chopstick, configured forat least four degrees of freedom of movement a stiff body of shape andproportions approximate to a pool cue; an electromagnetic actuator,comprising a motor, for each degree of freedom of movement coupled withthe stiff body, wherein the functional mapping from each actuator'smotor current to torque along the axis of motion is stored, and used inconcert with a calibrated model of the robot for effective impedancecontrol; and a 6-axis force/torque sensor mounted inline between theactuators and each chopstick.

These and other features, aspects, and embodiments are described belowin the section entitled “Detailed Description.”

BRIEF DESCRIPTION OF THE DRAWINGS

Features, aspects, and embodiments are described in conjunction with theattached drawings, in which:

FIG. 1 is a diagram illustrating an example an environment in which arobot can be controlled in accordance with one embodiment;

FIG. 2 is a block diagram illustrating an example wired or wirelesssystem that can be used in connection with various embodiments describedherein;

FIG. 3 is a diagram illustrating an example robot that can be used inthe environment of FIG. 1 and controlled in accordance with oneembodiment;

FIGS. 4A and 4B illustrate an example robot mounted on a gantry inaccordance with one example embodiment;

FIGS. 5A and 5B are diagrams illustrating mechanisms that allow each armof, e.g., the robot of FIGS. 4A and 4B to move up and down acorresponding leg; and

FIG. 6 is a diagram illustrating a differential chain drive that effectsrotational motion at a pulley C, and linear motion of the carriageincluded in the robot of FIGS. 4A and 4B.

DETAILED DESCRIPTION

The embodiments disclosed herein are related to robot designs andconfigurations that enable accurate autonomous, physical interactionwith various objects in the robot's environment. The disclosure and thevarious features and advantageous details thereof are explained morefully with reference to the non-limiting embodiments and examples thatare described and/or illustrated in the accompanying drawings anddetailed in the following description. It should be noted that thefeatures illustrated in the drawings are not necessarily drawn to scale,and features of one embodiment can be employed with other embodiments,even if not explicitly stated herein. Descriptions of well-knowncomponents and processing techniques may be omitted so as to notunnecessarily obscure the embodiments of the disclosure. The examplesused herein are intended merely to facilitate an understanding of waysin which the disclosure can be practiced and to further enable those ofskill in the art to practice the embodiments of the disclosure.Accordingly, the examples and embodiments herein should not be construedas limiting the scope of the disclosure. Moreover, it is noted that likereference numerals represent similar parts throughout the several viewsof the drawings.

The system can be applied to any robot for which a rigid body dynamicsmodel of the robot is available. The model can be built using acombination of CAD/CAE and system identification to determine best-fitparameters through physical experimentation. This includes leggedrobots, humanoid robots, and manipulator robots, among others.Rigid-body dynamics studies the movement of systems of interconnectedbodies under the action of external forces. The dynamics of a rigid bodysystem are described by the laws of kinematics and by the application ofNewton's second law (kinetics) or their derivative form Lagrangianmechanics. The solution of these equations of motion provides adescription of the position, the motion and the acceleration of theindividual components of the system and overall the system itself, as afunction of time.

FIG. 1 is a diagram illustrating an example environment 100 in which thesystems and methods described herein can be implemented. As can be seen,the system can use at least one RGB-D (color+depth) camera 105 to beaimed into the workspace 102 that the robot 104 will be operating in.The camera can be used for example to determine pose for various objects108. Alternatively, poses can be determined or estimated usingradio/electromagnetic wave triangulation, motion capture, etc.

In certain embodiments, the camera 105 may instead be a laser imagingdevice such as a LiDAR (a device for measuring distances by illuminatingthe target with laser light and measuring the reflection with a sensor.Differences in laser return times and wavelengths for many successive orsimultaneous illuminations can then be used to make digital 3-Drepresentations of a target.) The digital 3-D representation provided bya LiDAR (a “point cloud” or “depth image”) may be provided as input tocomputer imaging software to determine the position of robot's links 104or identify the geometry of and locate objects 108 or other features inthe environment 102.

In certain embodiments, every joint 106 of the robot 104 is instrumentedwith a position sensor (not shown), such as an optical encoder. Further,force/torque sensors (not shown), such as a 6-axis force/torque sensor,can be used to sense forces acting on the robot's links 104. The sensorscan be placed inline between two rigid links affixed together.Alternatively, tactile skins over the surface of the robot's rigid linkscan be used to precisely localize pressures from contact arising betweenthe robot and objects (or people) in the environment.

In certain embodiments, every joint 106 of the robot 104 may becontrolled via positional and velocity commands issued toelectromagnetic servo motors that are constructed in series with a forcemeasurement device such as a strain gauge or a spring (such as in aseries elastic actuators). The functional mapping from torque outputalong the axis of motion to accelerations of key points on the robot'skinematic structure is stored, and used in concert with a calibratedmodel of the robot for effective impedance control.

In certain embodiments, every joint 106 of the robot 104 may becontrolled via, via flow rate or positional commands in a hydraulic orpneumatic system that affects the mechanical work and force output of a“cylinder” by a valve connected to a fluid pressure source (A “cylinder”in this embodiment is any hollow, pressure-sealed chamber that may bepermitted to expand or contract in volume along certain degrees offreedom in response to changes in its internal pressure according tocombined gas law and similar laws in fluid mechanics). The functionalmapping from torque output along the axis of motion to accelerations ofkey points on the robot's kinematic structure is stored, and used inconcert with a calibrated model of the robot for effective impedancecontrol.

As noted, in certain embodiments, the chopstick degrees of freedom canbe actuated via a kinematic chain connected by a set of links as in 104.Certain embodiments might instead control the motion of the chopstickvia suspending the end effector link on a platform driven by one ormore, multiple-degree-of-freedom actuators. A “Delta robot” providesthree degrees-of-freedom of motion and, for six degree-of-freedommotion, a “Stewart Platform” or other “cable-driven robot” spatialactuators might control the spatial motion and force imparted by thechopstick end effector.

The chopstick end effector can be implemented as a cone with a wideaperture. Where a long, thin chopstick might more easy fit into gapsbetween individual objects 108 when singulating items from clutter, awider aperture cone that can rotate about its longitudinal axis can rollto reposition objects in its grip, where the center of rotation would beat the point of the conical geometry. Such an embodiment would be ableto simultaneously maintain a firm grasp on objects while re-orientingthem in its grasp.

The chopstick end effector can be implemented with anisotropic orvariable friction along its surface. An example of anisotropic frictionin nature is the scales of a fish that are smooth in one direction andrough in the opposite. This embodiment would provide a customizable gripforce along the length of the chopstick to permit rotation or sliding insome directions to reposition an object 108 in the robot's grasp whilemaintaining a firm hold on objects.

The camera(s) 105 and sensors 106 can be wired and/or wirelesslycommunicatively coupled to a back end server or servers, comprising oneor more processors running software as described above and below, whichin turn can be wired and/or wirelessly communicatively coupled with oneor more processors included in robot 104. The server processors runvarious programs and algorithms 112 that identify objects 108 withinimages workspace 102 that the system has been trained to identify. Forexample, a camera image may contain a corrugated box, a wrench, and asealed can of vegetables, all of which can be identified and added to amodel containing the objects in the camera's sightline and the robot'svicinity). Server(s) 110 can be local or remote from workspace 102.Alternatively, the one or more programs/algorithms can be included inrobot 104 and can be run by the one or more processors included in robot104.

Some sensors 106 can include an operator safety-focused “light curtain”or similar system that activates when a person enters the operationalworkspace of the robot. When such an event occurs, an independent safetycontroller deployed on an embedded circuit intercedes in the robot'spower supply limiting supplied voltages and currents to prevent therobot from exceeding safety approved operation speeds and output forces.The immediate intercision can also be interpreted by the control systemto behave differently, considering that a human operator is present andclose enough to physically interact with the robot while it is inmotion. Similar behaviors can be designed with more advanced computervision systems that map occupancy of the robots workspace and preventthe robot from entering areas of its workspace that are occupied by aperson or item that should not be physically interacted with.

The programs/algorithms 112 can include deep neural networks that dobounding box identification from camera 105 (RGB) images to identify anddemarcate, with boxes that overlay every object that the system has beentrained to manipulate and observe in a particular image. This softwarecan also encompass software that is specialized at identifying certainobjects, like corrugated cardboard boxes, using algorithms like edgedetectors, and using multiple camera views (e.g., calibrated stereocameras) in order to get the 3D position of points in the 2D cameraimage.

When objects are unique, e.g., a 12 oz can of Maxwell House coffee, the2D bounding box from a single camera is sufficient to estimate theobject's 3D pose. When objects instead belong to a class, e.g.,corrugated cardboard box, such that object sizes can vary, multiplecamera views, e.g., from a calibrated stereo camera setup, are needed toestablish correspondences between points in the 2D camera images andpoints in 3D. State-of-the-art techniques for training these neuralnetworks use domain randomization to allow objects to be recognizedunder various lighting conditions, backgrounds, and even objectappearances. Function approximation, e.g., deep neural networks trainedon synthetic images, or a combination of function approximation andstate estimation algorithms, can be used to estimate objects' 3D poses,or to estimate the value of a different representation, like keypoints,that uniquely determines the location and orientation of essentiallyrigid objects from RGB-D data. For example, a Bayesian filter (like a“particle filter”) can fuse the signals from force sensors with the poseestimates output from a neural network in order to track the object'sstate position and velocity.

Function approximation, e.g., deep neural networks trained on cameraimages, can be used to estimate a dynamic, e.g., inertia, friction,etc., and geometric (shape) model of all novel objects that are trackedby the system, e.g., using the bounding boxes. The coffee can exampleused above would not require this process, because it can be expectedthat every coffee can is identical to the limitations of the accuracybrought to bear on the problem, from the accuracy of the sensing and thecontrol frequency requirements. By way of contrasting example, boxeswill exhibit different surface friction depending on the material of thebox, e.g., corrugated, plastic, etc., and the location on the box. Forexample, if there is a shipping label placed on part of the box, thenthis can affect surface friction. Similarly, a neural network can inferthe geometry of the obscured part of a box from a single image showingpart of the box.

If an object is articulated, a kinematic model of the object can beestimated as well. Examples include doors, cabinets, drawers, ratchets,steering wheels, bike pumps, etc. The ground and any other stationaryparts of the environment are modeled as having infinite inertia, makingthem immobile. Function approximation, e.g., deep neural networkstrained on pressure fields, can be used to estimate the 3D poses ofobjects that the robot is contacting and thereby possibly obscuring theRGB-D sensor normally used for this purpose.

Kinematic commands (“desireds”) for the robot can be accepted for eachobject that the robot attempts to manipulate. The desireds can come frombehaviors. A behavior can be either a fast-to-compute reactive policy,such as a look up table that maps, e.g., the joint estimated state ofthe robot and manipuland to a vector of motor commands, or can includedeliberative components, or planners, e.g., a motion planner thatdetermines paths for the robot that do not result in contact with theenvironment. In that case of a planner, the output will be atime-indexed trajectory that specifies position and derivatives for therobot and any objects that the robot wants to manipulate.

In turn, the planner can use high level specifications, e.g., put thebox on the table, to compute the output trajectories. This process iswhere motion planning comes into play.

By inverting the dynamics model of the robot (from a=F/m to F=ma) andmodeling contact interactions as mass-spring-damper systems, the forcesnecessary to apply to the robots actuators can be computed in order toproduce forces on contacting objects, and thereby move both them and therobot as commanded.

If the force/torque data is available, then the sensed forces on therobot can be compared against the forces predicted by the dynamicsmodel. If, after applying some filtering as necessary, the forces arelargely different, the robot can halt its current activity and act tore-sense its environment, i.e., reconcile its understanding of the stateof its surroundings with the data it is perceiving. For example, agrasped 1 kg box might slip from the robot's end effectors' grasp whilethe robot is picking the object. At the time that the object slips fromthe robot's grasp, the robot's end effector would accelerate upward,since less force would be pulling the end effector downward, while thedynamics model, which assumes the object is still within the object'sgrasp, might predict that the end effector would remain at a constantvertical position. When the disparity between the actual end-effectoracceleration and predicted end-effector acceleration becomes greaterthan the model's bounds of accuracy, it becomes clear that the estimatedmodel state is direly incorrect. For a picking operation, we expect thismismatch to occur due to a small number of incidents: an object has beeninadvertently dropped, multiple objects have been inadvertently grasped,e.g., the robot intended to grab one object but grabbed two, a humanentered the workspace and was struck by the robot, or the robotinaccurately sensed the workspace, causing it to inadvertently collidewith the environment, i.e., the robot failed to sense an object'sexistence or it improperly parameterized a sensed object, e.g.,estimating a box was small when it was really large.

FIG. 3 is a diagram illustrating an example robot 104 in accordance withcertain embodiments. Conventional robotics lacks the ability to buildautomated machines for manipulating objects of various shapes, sizes,inertias, and materials. Simply attaching robotic grippers to industrialrobot arms barely allows “picking” objects reliably, much less thevarious ways a robot could interact with its environment: throughpinching, stretching, tying, squeezing, brushing, scratching, etc. As aresult, conventional robots are very limited in how they can physicallyinteract with their environments, and most manual labor cannot beautomated.

The example hardware solution of FIG. 3 uses a simpler design than aconventional robotic arm. It has simple geometry where it touchesobjects and it has simple kinematics of movement. The design comprisesat least two independent “chopsticks” 302, each of which has nominallyfive degrees of freedom of movement: linear translation along all threeCartesian dimensions as well as “pitch” and “yaw” rotations. In certainembodiments, the degrees-of-freedom can be decreased to as few as four,to simplify the mechanism, which would still be suitable for certainapplications, or beyond five, to allow redundancy of movement whichhelps with, e.g., obstacle avoidance.

Rotational degree-of-freedom joints can be substituted for the lineardegree-of-freedom joints for joints 106.

Chopstick 302 can be affixed to a part of the environment, e.g., boltedinto the ground via base 304, or it can be attached to a wheeled or alegged base. The two or more chopsticks 302 can then work together. Anexample implementation is described in more detail with respect to FIG.4-6.

The chopsticks 302 can comprise a very stiff body, of similar shape andproportions to a pool cue. Since the actual dimensions can be scaled,larger robotic systems for manipulating medium and large sized objectscan be configured as can small robotic systems for assembling, e.g.,phones.

Each chopstick 302 can be driven along five degrees of freedom ofmovement, with an electromagnetic actuator for each degree of freedom.Other embodiments can provide as few as four or as many as sixindependent degrees of freedom of motion to the chopstick end effector.Each actuator can use a low-gearing ratio (approximately <10:1) or otherform of high efficiency transmission at higher-gearing ratios tominimize “passive impedance” and maximize “transmission transparency”.Given an actuator with high enough output torque, a speed reducer(transmission) can be removed entirely. A “frameless” motor embeddedinto the chassis of the robot, implemented as linear drives and rotarydirect drives, can provide a transmission ratio of 1:1, as either thecoil or the stator of the electromagnetic motor acts directly as theoutput of the actuator, avoiding mechanical frictions and other lossesthat are introduced by transmission. The functional mapping from eachactuator's motor current to torque along the axis of motion is stored,and used in concert with a calibrated model of the robot for effectiveimpedance control.

A 6-axis force/torque sensor 306 can be mounted inline between theactuators and each chopstick. This allows sensing the totality ofcontact-based forces acting on the chopstick 302. Further, theactuator(s) each chopstick 302 can be powered either through a batteryor a main connection, e.g., using household voltage, 120V in the U.S.

Each chopstick 302 can also be constructed from carbon fiber to minimizeweight and maximize stiffness. The minimized weight allows maximizingmovement speed, payload, or some function of the two. A soft, skin (notshown) with the compliance of rubber (approximately 10 MPa) can coverthe chopstick 302. The skin can be instrumented with an array of tactilesensors, so that pressure location and magnitude can be detected at anypoint on the skin.

Robots that must reposition their grasp on a held object typically placethem on a nearby surface and pick them up from a new angle such as aperson might do when trying to turn an item over when using only onehand. Where a person might use two hands for more dexterous manipulationtasks (e.g., solving a puzzle box), multiple instances of the chopstickmanipulation platform might work together to perform more complex tasks.For a robot whose gantry occupies a cubic volume in space such as theembodiment in FIGS. 4A and B, potentially 27 chopstick platforms (54chopstick end effector “fingers”, in an arrangement that looks like a3×3 Rubik's cube) are able to reach a volume of space at the centerpoint of the robot cluster where the complex task might take place.Permutations of the aforementioned modular, cooperative configurationcan permit multiple chopstick platforms to achieve highly complex taskswhere one robot might not have sufficient dexterity.

In one embodiment, a hard plastic “fingernail” extends, e.g., up to 10mm beyond the chopstick and serves as a rigid tool for manipulation(e.g., cutting and scraping actions).

FIGS. 4A and 4B illustrate an example robot 400 mounted on a gantry inaccordance with one example embodiment. As can be seen robot 400 cancomprise two or more, in this case two arms 403A and B that holdchopstick like effectors (chopsticks) 402A and B and that are mounted onlegs 404A and B. The mounting mechanism 420 can comprise one or moremechanisms that allow each arm 403 to move up and down the correspondingleg 404, as illustrated in more detail with respect to FIGS. 5A and B.

The arms 403 can be configured to enable four or more degrees offreedom. In the example of FIGS. 4A and B there are five degrees offreedom. As a result, in this embodiment, the chopstick can reach anyposition in its workspace due to the 5 degrees of freedom. Theembodiment of FIGS. 4A and B can actuate yaw rotation (about thevertical axis) as well as the pitch of the chopstick.

As illustrated in FIGS. 5A and B, the arms 403 can include planetarygearbox 420 mounted on a linear carriage (legs 404) that allows the armsto move up and down the legs 404, in this case via tracks 424A and Bthat can interface with rails on legs 404. Motors can be included inlegs 404 that can then drive arms 403 up and down via the rails.

Rails 408A and B can also be included and motors can be positionedwithin rails 408 that can then move legs 404A and B back and forth asillustrated in FIGS. 4A and B. This configuration allows the motors tobe grouped in twos (see FIG. 6), driving differential actuators thathave one translation and one rotation degree of freedom. Further, themotors in this embodiment can be placed in locations remote from eachaxis of motion, e.g., as illustrated in FIG. 6, allowing the robot 400to not have to lift the additional weight of its own motors. Thisenhancement gives the robot 400 a higher maximum payload and reducesstructural requirements of the robot's frame.

As can be seen in FIGS. 4 and 5, the chopstick 402 body is connected atthe most distal degree of freedom on the robot 400, i.e., the pitch axisof motion. The end effector consists of a cylindrical or conical contactsurface and a force torque sensor 306 (FT-sensor) (see FIG. 3). Thisparticular embodiment of the chopstick 402 end effector places theFT-sensor 306 mid-way down the length of the chopstick 402 to reduce themoment payload exerted on the sensor 306 by decreasing the length of thelever connected to the sensor 306. This permits the use of a smaller,lighter force/torque sensor 306 for a given payload requirement andincreases the resolution of the sensor. Note that the conical contactgeometry is not altered by the placement of the FT-sensor 306.

In certain embodiments, the robot's end effector, e.g., the end effectorof chopstick 402 can be surfaced in a tessellation of suction cups thatuse the negative fluid pressure of air to create a partial vacuumagainst nonporous surfaces. Suction cups improve upon the grip providedby high-friction surfaces by causing the end effector to adhere to anobject it touches.

In certain embodiments, some or all of the robot's links, e.g., the endeffector of chopstick 403 can be constructed with elastic rods whosemechanics are similar to the ideal beams described byTimoshenko-Ehrenfest beam theory. When such beams are instrumented tomeasure their deformation or internal strain, such as with a positionsensor (not shown), the deformation of the robot's links can be used tosense the forces acting on or across those links. The functional mappingfrom torque output along the axis of motion to accelerations of keypoints on the robot's kinematic structure is stored, and used in concertwith a calibrated model of the robot for effective impedance control.

In certain embodiments, some or all of the robot's links, e.g., the endeffector of chopstick 402 can be constructed to “telescope” (extend andcollapse to a desired length) within a preconfigured range of lengths.

In certain embodiments, the robot's 104 chopstick link 402 may becovered by or replaced with a deformable, elastic-skinned body such as aballoon that is inflated or filled with a fluid. The pressure of thefluid filling the balloon and the construction of the balloon itselfdetermine its hydroelasticity and thus its deformation and reactionforces to externally-applied mechanical forces. The functional mappingfrom torque output along the axis of motion to accelerations of keypoints on the robot's kinematic structure is stored, and used in concertwith a calibrated model of the robot for effective impedance control.Such inflatable links also provide a safer human-machine interface aswell as a safer interface between the robot and its environment bydeforming under external-applied contact, which limits the impulsiveforces that a collision might impart to a contacted object 108 or therobot's environment 102.

In one embodiment, robot 400 has a mobile base 401. The mobile base 401can comprise two “active casters” on the rear (not shown) and two skids410A and B on the front. This implementation gives holonomic motion tothe mobile base 401. Skids 410 can be casters, but the illustratedimplementation is simpler and skids 410 do not induce wobble fromchanging direction that would result from casters (the motion isholonomic in both embodiments).

Skids 410 can be made out of material with low surface friction, e.g.,ultra-high-molecular-weight polyethylene (UHMWPE).

There are two powered degrees-of-freedom per “active caster”: The wheelcan rotate (yaw) about the vertical axis, and the wheel can roll (drive)forward or backward.

FIG. 6 is a diagram illustrating a differential chain drive that effectsrotational motion at pulley C, and linear motion of the carriage. It isa two degree-of-freedom actuator, with two motor inputs and one linearand one rotary output degree of freedom.

A single chain T, illustrated by the lines connecting circles in theillustration, drives eight sprocket pulleys. Pulleys A and B areconnected to motors mounted to the chassis, C is connected to a revoluteoutput, D, G, H are idlers mounted to the carriage and E, and F areidlers mounted to the chassis. When motors A and B are both driven withthe same speed in the same direction it results in a rotation of theoutput at C with no motion of the carriage.

When motors A and B are driven with the same speed in opposingdirections the carriage will move linearly with no rotary motion ofpulley C. In this manner, combinations of motor inputs at A and B willresult in a desired linear motion of the carriage and of the rotationaloutput at pulley C. The mechanical advantage of the linear and rotaryoutputs can be adjusted by altering the radii of pulley C, or A and Btogether so long as all sections of chain T remain parallel (excludingT_(CG) and T_(CH)).

FIG. 2 is a block diagram illustrating an example wired or wirelesssystem 550 that can be used in connection with various embodimentsdescribed herein. For example the system 550 can be used to implementthe robot control system described above and can comprise part of therobot 104 or backend servers 110 and can store the functional mappingfrom each actuator's motor current to motor torque is stored, and usedin concert with a calibrated model of the robot for effective impedancecontrol. The system 550 can be a server or any conventional personalcomputer, or any other processor-enabled device that is capable of wiredor wireless data communication. Other computer systems and/orarchitectures may be also used, as will be clear to those skilled in theart.

The system 550 preferably includes one or more processors, such asprocessor 560. Additional processors may be provided, such as anauxiliary processor to manage input/output, an auxiliary processor toperform floating point mathematical operations, a special-purposemicroprocessor having an architecture suitable for fast execution ofsignal processing algorithms (e.g., digital signal processor), a slaveprocessor subordinate to the main processing system (e.g., back-endprocessor), an additional microprocessor or controller for dual ormultiple processor systems, or a coprocessor. System 550 can alsoinclude a tensor processing unit as well as motion planning processorsor systems.

Such auxiliary processors may be discrete processors or may beintegrated with the processor 560. Examples of processors which may beused with system 550 include, without limitation, the Pentium®processor, Core i7® processor, and Xeon® processor, all of which areavailable from Intel Corporation of Santa Clara, Calif.

The processor 560 is preferably connected to a communication bus 555.The communication bus 555 may include a data channel for facilitatinginformation transfer between storage and other peripheral components ofthe system 550. The communication bus 555 further may provide a set ofsignals used for communication with the processor 560, including a databus, address bus, and control bus (not shown). The communication bus 555may comprise any standard or non-standard bus architecture such as, forexample, bus architectures compliant with industry standard architecture(ISA), extended industry standard architecture (EISA), Micro ChannelArchitecture (MCA), peripheral component interconnect (PCI) local bus,or standards promulgated by the Institute of Electrical and ElectronicsEngineers (IEEE) including IEEE 488 general-purpose interface bus (GPM),IEEE 696/S-100, and the like.

System 550 preferably includes a main memory 565 and may also include asecondary memory 570. The main memory 565 provides storage ofinstructions and data for programs executing on the processor 560, suchas one or more of the functions and/or modules discussed above. Itshould be understood that programs stored in the memory and executed byprocessor 560 may be written and/or compiled according to any suitablelanguage, including without limitation C/C++, Java, JavaScript, Pearl,Visual Basic, .NET, and the like. The main memory 565 is typicallysemiconductor-based memory such as dynamic random access memory (DRAM)and/or static random access memory (SRAM). Other semiconductor-basedmemory types include, for example, synchronous dynamic random accessmemory (SDRAM), Rambus dynamic random access memory (RDRAM),ferroelectric random access memory (FRAM), and the like, including readonly memory (ROM).

The secondary memory 570 may optionally include an internal memory 575and/or a removable medium 580, for example a floppy disk drive, amagnetic tape drive, a compact disc (CD) drive, a digital versatile disc(DVD) drive, other optical drive, a flash memory drive, etc. Theremovable medium 580 is read from and/or written to in a well-knownmanner. Removable storage medium 580 may be, for example, a floppy disk,magnetic tape, CD, DVD, SD card, etc.

The removable storage medium 580 is a non-transitory computer-readablemedium having stored thereon computer executable code (i.e., software)and/or data. The computer software or data stored on the removablestorage medium 580 is read into the system 550 for execution by theprocessor 560.

In alternative embodiments, secondary memory 570 may include othersimilar means for allowing computer programs or other data orinstructions to be loaded into the system 550. Such means may include,for example, an external storage medium 595 and an interface 590.Examples of external storage medium 595 may include an external harddisk drive or an external optical drive, or and external magneto-opticaldrive.

Other examples of secondary memory 570 may include semiconductor-basedmemory such as programmable read-only memory (PROM), erasableprogrammable read-only memory (EPROM), electrically erasable read-onlymemory (EEPROM), or flash memory (block oriented memory similar toEEPROM). Also included are any other removable storage media 580 andcommunication interface 590, which allow software and data to betransferred from an external medium 595 to the system 550.

System 550 may include a communication interface 590. The communicationinterface 590 allows software and data to be transferred between system550 such as possibly robot 104, camera 105 or other sensors, as well asexternal devices (e.g. printers), networks, or information sources. Forexample, computer software or executable code may be transferred tosystem 550 from a network server via communication interface 590.Examples of communication interface 590 include a built-in networkadapter, network interface card (NIC), Personal Computer Memory CardInternational Association (PCMCIA) network card, card bus networkadapter, wireless network adapter, Universal Serial Bus (USB) networkadapter, modem, a network interface card (NIC), a wireless data card, acommunications port, an infrared interface, an IEEE 1394 fire-wire, orany other device capable of interfacing system 550 with a network oranother computing device.

Communication interface 590 preferably implements industry promulgatedprotocol standards, such as Ethernet IEEE 802 standards, Fiber Channel,digital subscriber line (DSL), asynchronous digital subscriber line(ADSL), frame relay, asynchronous transfer mode (ATM), integrateddigital services network (ISDN), personal communications services (PCS),transmission control protocol/Internet protocol (TCP/IP), serial lineInternet protocol/point to point protocol (SLIP/PPP), and so on, but mayalso implement customized or non-standard interface protocols as well.

Software and data transferred via communication interface 590 aregenerally in the form of electrical communication signals 605. Thesesignals 605 are preferably provided to communication interface 590 via acommunication channel 600. In one embodiment, the communication channel600 may be a wired or wireless network, or any variety of othercommunication links. Communication channel 600 carries signals 605 andcan be implemented using a variety of wired or wireless communicationmeans including wire or cable, fiber optics, conventional phone line,cellular phone link, wireless data communication link, radio frequency(“RF”) link, or infrared link, just to name a few.

Computer executable code (i.e., computer programs or software) is storedin the main memory 565 and/or the secondary memory 570. Computerprograms can also be received via communication interface 590 and storedin the main memory 565 and/or the secondary memory 570. Such computerprograms, when executed, enable the system 550 to perform the variousfunctions of the present invention as previously described.

In this description, the term “computer readable medium” is used torefer to any non-transitory computer readable storage media used toprovide computer executable code (e.g., software and computer programs)to the system 550. Examples of these media include main memory 565,secondary memory 570 (including internal memory 575, removable medium580, and external storage medium 595), and any peripheral devicecommunicatively coupled with communication interface 590 (including anetwork information server or other network device). Thesenon-transitory computer readable mediums are means for providingexecutable code, programming instructions, and software to the system550.

In an embodiment that is implemented using software, the software may bestored on a computer readable medium and loaded into the system 550 byway of removable medium 580, I/O interface 585, or communicationinterface 590. In such an embodiment, the software is loaded into thesystem 550 in the form of electrical communication signals 605. Thesoftware, when executed by the processor 560, preferably causes theprocessor 560 to perform the inventive features and functions previouslydescribed herein.

In an embodiment, I/O interface 585 provides an interface between one ormore components of system 550 and one or more input and/or outputdevices. Example input devices include, without limitation, keyboards,touch screens or other touch-sensitive devices, biometric sensingdevices, computer mice, trackballs, pen-based pointing devices, and thelike. Examples of output devices include, without limitation, cathoderay tubes (CRTs), plasma displays, light-emitting diode (LED) displays,liquid crystal displays (LCDs), printers, vacuum fluorescent displays(VFDs), surface-conduction electron-emitter displays (SEDs), fieldemission displays (FEDs), and the like.

The system 550 also includes optional wireless communication componentsthat facilitate wireless communication over a voice and over a datanetwork. The wireless communication components comprise an antennasystem 610, a radio system 615 and a baseband system 620. In the system550, radio frequency (RF) signals are transmitted and received over theair by the antenna system 610 under the management of the radio system615.

In one embodiment, the antenna system 610 may comprise one or moreantennae and one or more multiplexors (not shown) that perform aswitching function to provide the antenna system 610 with transmit andreceive signal paths. In the receive path, received RF signals can becoupled from a multiplexor to a low noise amplifier (not shown) thatamplifies the received RF signal and sends the amplified signal to theradio system 615.

In alternative embodiments, the radio system 615 may comprise one ormore radios that are configured to communicate over various frequencies.In one embodiment, the radio system 615 may combine a demodulator (notshown) and modulator (not shown) in one integrated circuit (IC). Thedemodulator and modulator can also be separate components. In theincoming path, the demodulator strips away the RF carrier signal leavinga baseband receive audio signal, which is sent from the radio system 615to the baseband system 620.

If the received signal contains audio information, then baseband system620 decodes the signal and converts it to an analog signal. Then thesignal is amplified and sent to a speaker. The baseband system 620 alsoreceives analog audio signals from a microphone. These analog audiosignals are converted to digital signals and encoded by the basebandsystem 620. The baseband system 620 also codes the digital signals fortransmission and generates a baseband transmit audio signal that isrouted to the modulator portion of the radio system 615. The modulatormixes the baseband transmit audio signal with an RF carrier signalgenerating an RF transmit signal that is routed to the antenna systemand may pass through a power amplifier (not shown). The power amplifieramplifies the RF transmit signal and routes it to the antenna system 610where the signal is switched to the antenna port for transmission.

The baseband system 620 is also communicatively coupled with theprocessor 560. The central processing unit 560 has access to datastorage areas 565 and 570. The central processing unit 560 is preferablyconfigured to execute instructions (i.e., computer programs or software)that can be stored in the memory 565 or the secondary memory 570.Computer programs can also be received from the baseband processor 610and stored in the data storage area 565 or in secondary memory 570, orexecuted upon receipt. Such computer programs, when executed, enable thesystem 550 to perform the various functions of the present invention aspreviously described. For example, data storage areas 565 may includevarious software modules (not shown).

Various embodiments may also be implemented primarily in hardware using,for example, components such as application specific integrated circuits(ASICs), or field programmable gate arrays (FPGAs). Implementation of ahardware state machine capable of performing the functions describedherein will also be apparent to those skilled in the relevant art.Various embodiments may also be implemented using a combination of bothhardware and software.

Furthermore, those of skill in the art will appreciate that the variousillustrative logical blocks, modules, circuits, and method stepsdescribed in connection with the above described figures and theembodiments disclosed herein can often be implemented as electronichardware, computer software, or combinations of both. To clearlyillustrate this interchangeability of hardware and software, variousillustrative components, blocks, modules, circuits, and steps have beendescribed above generally in terms of their functionality. Whether suchfunctionality is implemented as hardware or software depends upon theparticular application and design constraints imposed on the overallsystem. Skilled persons can implement the described functionality invarying ways for each particular application, but such implementationdecisions should not be interpreted as causing a departure from thescope of the invention. In addition, the grouping of functions within amodule, block, circuit or step is for ease of description. Specificfunctions or steps can be moved from one module, block or circuit toanother without departing from the invention.

Moreover, the various illustrative logical blocks, modules, functions,and methods described in connection with the embodiments disclosedherein can be implemented or performed with a general purpose processor,a digital signal processor (DSP), an ASIC, FPGA or other programmablelogic device, discrete gate or transistor logic, discrete hardwarecomponents, or any combination thereof designed to perform the functionsdescribed herein. A general-purpose processor can be a microprocessor,but in the alternative, the processor can be any processor, controller,microcontroller, or state machine. A processor can also be implementedas a combination of computing devices, for example, a combination of aDSP and a microprocessor, a plurality of microprocessors, one or moremicroprocessors in conjunction with a DSP core, or any other suchconfiguration.

Additionally, the steps of a method or algorithm described in connectionwith the embodiments disclosed herein can be embodied directly inhardware, in a software module executed by a processor, or in acombination of the two. A software module can reside in RAM memory,flash memory, ROM memory, EPROM memory, EEPROM memory, registers, harddisk, a removable disk, a CD-ROM, or any other form of storage mediumincluding a network storage medium. An exemplary storage medium can becoupled to the processor such that the processor can read informationfrom, and write information to, the storage medium. In the alternative,the storage medium can be integral to the processor. The processor andthe storage medium can also reside in an ASIC.

Any of the software components described herein may take a variety offorms. For example, a component may be a stand-alone software package,or it may be a software package incorporated as a “tool” in a largersoftware product. It may be downloadable from a network, for example, awebsite, as a stand-alone product or as an add-in package forinstallation in an existing software application. It may also beavailable as a client-server software application, as a web-enabledsoftware application, and/or as a mobile application.

While certain embodiments have been described above, it will beunderstood that the embodiments described are by way of example only.Accordingly, the systems and methods described herein should not belimited based on the described embodiments. Rather, the systems andmethods described herein should only be limited in light of the claimsthat follow when taken in conjunction with the above description andaccompanying drawings.

What is claimed:
 1. A robot comprising: a chopstick, configured for at least four degrees of freedom of movement a stiff body of shape and proportions approximate to a pool cue; an electromagnetic actuator, comprising a motor, for each degree of freedom of movement coupled with the stiff body, wherein the functional mapping from each actuator's motor current to torque output along an axis of motion is stored, and used in concert with a calibrated model of the robot for effective impedance control; and a 6-axis force/torque sensor mounted inline between the actuators and each chopstick.
 2. The robot of claim 1, wherein each chopstick is constructed from carbon fiber to minimize weight and maximize stiffness.
 3. The robot of claim 1, further comprising a soft, skin with the compliance of rubber covering each chopstick.
 4. The robot of claim 3, wherein the skin is approximately 10 MPa.
 5. The robot of claim 3, wherein the skin is instrumented with an array of tactile sensors, so that pressure location and magnitude can be detected at any point on the skin.
 6. The robot of claim 1, further comprising a hard plastic fingernail extend beyond the end of the chopstick. 